The interfacing of peripherals to personal computers (PCs) is a mature art that has well-established methods for dealing with forward compatibility. In the PC industry, a number of manufacturers provide peripherals that are compatible and interchangeable to a high degree. This is possible through the use of open interface standards, and through the mediating role of Operating Systems used with PCs.
The Operating System (OS) of a PC defines a Device Driver Interface (DDI) for a given class of peripheral. This enables the OS to access a number of peripherals of that class in a consistent and device independent manner. This is possible because the Device Driver (driver) for each peripheral encompasses the functionality of that peripheral and presents it to the OS in accordance with the DDI, so that all peripherals of that class can be interfaced to in essentially the same way.
The OS also provides an Application Program Interface (API) for application programs. This API encompasses the functionality of the PC (including its peripherals) and presents it to the application programs (applications) as a device independent interface. Hence, the applications are able to run on a PC without regard to what particular configuration of different peripherals is connected to that PC.
The OS mediates between application programs and peripherals. When a new peripheral is added to a PC, a new device driver for that peripheral is installed on a storage device of the PC. Applications executing on the PC are able to use the new peripheral, through its driver. Because the applications access the peripheral through its S driver, they are isolated from the need for any change in their own functionality. The modular nature of PC software thus makes it easy to provide forward compatibility with new peripherals.
One alternate approach that has been adopted for use on PCs is that used by Adobe® for their Postscript® printer driver for PCs (Adobe and PostScript are trade marks registered in Australia in the name of Adobe Systems Incorporated). This driver provides forward compatibility with updated printer hardware without the replacement of the driver itself. This is achieved by providing a printer model specific configuration file (called a PPD) file) for each printer model. When printing, the PostScript printer driver reads the PPD file of the printer that it is printing to, and modifies the data that it sends to the printer by including model specific print commands from the PPD file. These model specific print commands provide support for the new features of the updated hardware.
This solution for PostScript printers is possible because PostScript printers implement the PostScript page description language, which is in fact a full programming language. PostScript print jobs are in fact PostScript programs. This allows the PostScript driver to delegate model specific data processing to the printer itself, by transferring PostScript program code from the PPD file to the printer.
The PostScript printer driver for PCs provides forward compatibility with updated printer hardware without the need to replace the printer driver. This is possible because the updated printer itself executes the program code required for its new features, so the program code of the printer driver does not need to change. This solution would not work for peripherals that are incapable of executing program code that is downloaded to them.
The interfacing of peripherals to game consoles is a relatively undeveloped art, which has previously had little need to address the issue of forward compatibility. The interfacing of peripherals to video game consoles is a very different matter to interfacing with PCs described above. Software for video game consoles is inherently of a monolithic and unchangeable nature, as opposed to the modular and upgradeable nature of PC software. This is caused by the very different natures of the two platforms.
PCs have large hard disk memories that allow a multitude of software modules (including applications, drivers, libraries and others) to be installed concurrently PC operating systems impose standardised interfaces on software modules, which allows interchangeability. As modules become obsolete, they can easily be replaced, without the need to replace other modules. Replacement can occur by installing the new module from a floppy disk, a CD, or downloading it from the Internet.
Game consoles typically have no hard disk memory, instead providing a CD-ROM/DVD-ROM drive or ROM cartridge slot that allows the console to run only one game application at a time. The game applications are monolithic in that all code and data is stored together in unchangeable media such as mask ROM modules, CDs or DVDs. Because the game applications are stored on unchangeable media, it is not possible to update them in order to provide compatibility with new hardware. Each game application operates in complete isolation, with no linkage to other software. No provision has been made for upgrading game applications with updated software modules, short of total replacement. The game console may provide some small amount of non-volatile memory, but this is typically intended only for the storage of configuration and high score data. It is generally not possible to modify game applications by linking them to executable code stored in this non-volatile memory
The inflexibility of the game console environment has previously not been of great concern. The design of game console hardware has traditionally been “set in stone” for the lifetime of each specific platform. This removed the need for game applications to cope with updated hardware.
Given the current trend for the convergence of technologies, it is not surprising that the distinction and differences between PCs and game consoles are reducing. Game consoles now offer general-purpose hardware expansion busses, such as USB, which raises the prospect of interfacing PC peripherals to game consoles. The provision of hardware compatibility alone is not sufficient, as software compatibility is also required.
One solution for providing software compatibility is to equip the game console with a PC style operating system. The solution then becomes the same as for the PC. This approach has not met with much success, and the game console industry is generally avoiding it. Several reasons for this have been suggested, which include:                Many game developers are unwilling to make the sacrifice in performance that comes with conforming to OS interfaces;        Some operating systems provide interfaces that are awkward and cumbersome to use; and        Some operating systems require the game console manufacturer to pay a licensing fee.        
As game console hardware approaches that of the PC, but in the absence of a PC style OS, the presently addressed issue becomes a problem. The USB interface allows game consoles to connect to a myriad of new peripherals, but there is no method for game applications to provide forward compatibility with peripherals released after the game.